package hygprs

/*
数据包中各部分所在的偏移量
每个偏移量到下个偏移量的差为这部分的长度
负数表示位于包尾开始计算
*/
const (
	PositionHeader       = 0
	PositionLength       = 1
	PositionVersion      = 3
	PositionSerialNumber = 4
	PositionType         = 6
	PositionData         = 7
	PositionChecksum     = -5
	PositionTail         = -1
)

// 包头含义
const (
	FromBus            = 0x80 // 车载端上传
	ToBus              = 0xa0 // 发送给车载端
	FromDispatchServer = 0xb0 // 调度服务器专用
	Internal           = 0xc0 // 内部使用
)

// 包中字段对应的编号
const (
	LineID                            = 0x01 // 源地址的组织,比如线路号
	BusID                             = 0x02 // 源地址编号,比如车号
	DeviceType                        = 0x03 // 车载信息终端类型编码
	OperatorID                        = 0x04 // 源地址的持有者编码
	DriverKH                          = 0x04 // 司机卡号
	Unix                              = 0x06 // 信息包时间戳
	Longitude                         = 0x07 // 经度
	Latitude                          = 0x08 // 纬度
	Angle                             = 0x09 // 方向角
	Speed                             = 0x0a // 速度
	ShiftType                         = 0x0b // 车次类型:下行，上行，环行
	Station                           = 0x0c // 站点编号
	ReportStationAuto                 = 0x0d // 手动、自动报站
	ReportStationType                 = 0x0e // 报站类型
	AlarmType                         = 0x0f // 报警类型
	NumberOfPassenger                 = 0x10 // 乘客人数
	DeviceNumber                      = 0x11 // 设备编号
	CustomData                        = 0x12 // 自定义短信息/自定义数据
	Dispatcher                        = 0x13 // 调度员编号
	MasterStationPlanDepartTime       = 0x14 // 主站计划发车时间
	SecondaryStationPlanArrivalTime   = 0x15 // 副站计划到达时间
	SecondaryStationPlanDepartTime    = 0x16 // 副站计划发车时间
	MasterStationPlanArrivalTime      = 0x17 // 主站计划到达时间
	NumberOfShift                     = 0x18 // 实际计算的班数
	CurrentShift                      = 0x19 // 当前运行的班次
	AnswerType                        = 0x1a // 通讯应答类型
	NumberOfPhotoPacket               = 0x1b // 照片包数量
	SerialOfPhotoPacket               = 0x1c // 照片数据包序号
	EnterOrLeave                      = 0x1d // 进出场数据
	MasterStationActualDepartTime     = 0x1e // 主站实际发车时间
	SecondaryStationActualArrivalTime = 0x1f // 副站实际到达时间
	SecondaryStationActualDepartTime  = 0x20 // 副站实际发车时间
	MasterStationActualArrivalTime    = 0x21 // 主站实际到达时间
	Confirm                           = 0x22 // 调度令确认数据
	DownPlanID                        = 0x23 // 下行计划ID
	UpPlanID                          = 0x24 // 上行计划ID
	SecondaryStationDepart            = 0x25 // 副站发车
	SecondaryStationArrival           = 0x26 // 副站收车
	PostBackID                        = 0x27 // 行使回传ID，车载端启动时生成两个ID，下行用一个，上行用一个
	GroundStationNumber               = 0x28 // 场站编号,奇数代表副场 偶数代表主场

	Interval      = 0x09 // 指令设置时的行驶包时间间隔
	Count         = 0x0a // 黑名单下载时的黑名单条数
	CountOfPacket = 0x1b // 黑名单下载时的总包数

	/* 报警包 */
	GroupID    = 0x27
	BasicSpeed = 0x28
	BasicTime  = 0x29
	OverTimes  = 0x30

	/* 信号线 */
	SignalType = 0x29
	SignalData = 0x30
	/* CAN */
	CANType = 0x30

	/* 客流统计 */
	Door          = 0x0d
	GetInBus      = 0x29
	GetOutBus     = 0x30
	SenderRelated = 0x31 // 发送方相关值
	SenderUnique  = 0x32 // 发送方唯一值

	DataType = 0x35

	CustomDataF1 = 0xf1 // 自定义数据，比如监控的线路
	CustomDataF2 = 0xf2 // 自定义数据，比如车辆登录时携带的自定义数据
)
